package application; import java.util.List; import org.parse4j.ParseException; import org.parse4j.ParseObject; import org.parse4j.ParseQuery; import org.parse4j.callback.FindCallback; import Util.AutoUpdater; import Util.Database; import Util.FileHandler; import Util.Note; import javafx.application.Platform; import javafx.event.ActionEvent; import javafx.fxml.FXML; import javafx.scene.Node; import javafx.scene.control.Button; import javafx.scene.control.Label; import javafx.scene.control.TextField; import javafx.stage.Stage; public class RegisterController { @FXML private Button button_start; @FXML private TextField textfield_uuid; @FXML private Label label_status; @FXML protected void button_start(ActionEvent event) { Node source = (Node) event.getSource(); Stage stage = (Stage) source.getScene().getWindow(); setStatus("Loading..."); ParseQuery<ParseObject> query = ParseQuery.getQuery("_Installation"); query.whereEqualTo("installationId", textfield_uuid.getText()); query.findInBackground(new FindCallback<ParseObject>() { @Override public void done(List<ParseObject> arg0, ParseException arg1) { if (arg0 == null) { setStatus("Error: UUID not found!"); } else { setStatus("Success! Working..."); // Save UUID new FileHandler().add(textfield_uuid.getText()); // Load note data final ParseQuery<Note> query = ParseQuery.getQuery("Note"); query.whereEqualTo("ownerID", textfield_uuid.getText()); query.findInBackground(new FindCallback<Note>() { @Override public void done(List<Note> arg0, ParseException arg1) { for (Note note: arg0) { Database database = new Database(); if (database.contains(note.getID())) { database.update(note, 0, 0, false); } else { database.addNote(note); } } Platform.runLater(new Runnable() { @Override public void run() { try { stage.close(); new NotesList().start(new Stage()); new AutoUpdater().start(); } catch (Exception e) { e.printStackTrace(); } } }); } }); } } }); } private void setStatus(String status) { Platform.runLater(new Runnable() { @Override public void run() { label_status.setVisible(true); label_status.setText(status); } }); } }